home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
LOGIC Apps
/
Logic-APPLE_II_APPS.iso
/
pc
/
LOGIC Apple II 5.25" Library - DOS Part 3
/
DOS069.dsk
/
CRIBBAGE I BW.bas
< prev
next >
Wrap
BASIC Source File
|
2012-02-16
|
13KB
|
515 lines
5 REM FROM CREATIVE COMPUTING MAY 1979
10 DIM D(52,4),C$(52),I(52),W(5,4),M(6,4),Y(6,4),C(4,4)
20 DIM D$(6),V(15,7),Q(11,6),R(4,5),S(4),J(52)
22 FOR I = 1 TO 15: FOR J = 1 TO 7: READ V(I,J): NEXT J,I
24 FOR I = 1 TO 11: FOR J = 1 TO 6: READ Q(I,J): NEXT J,I
26 FOR I = 1 TO 4: FOR J = 1 TO 5: READ R(I,J): NEXT J,I
28 FOR I = 1 TO 4: READ S(I): NEXT I
30 FOR I = 1 TO 6: READ D$(I): NEXT I
40 FOR I = 1 TO 13
50 READ C$
60 C$(I) = C$ +" OF SPADES "
70 C$(I +13) = C$ +" OF DIAMONDS "
80 C$(I +26) = C$ +" OF HEARTS "
90 C$(I +39) = C$ +" OF CLUBS "
100 NEXT I
120 REM CRIBBAGE BY S YARROW
130 REM CREATIVE COMPUTING
140 REM MAY 79 V5 #5
145 HOME : PRINT " ": PRINT "CRIBBAGE"
146 PRINT " "
147 PRINT "BY SHEPPARD YARROW"
148 PRINT "FM PG 104 OF 5/79 CREATIVE COMPUTING"
149 VTAB 12: INPUT "YOUR NAME?";NN$: HOME
150 PRINT : PRINT
170 S1 = 0:S2 = 0
190 GOSUB 5650
200 GOSUB 5810
220 GOSUB 5650
230 GOSUB 6070
250 GOSUB 3370
270 I1 = V(B9,5)
280 I2 = V(B9,6)
300 PRINT : INPUT "YOUR DISCARDS ARE ? ";I3,I4
310 I3 = INT(I3):I4 = INT(I4)
320 IF I3 = I4 OR I3 <1 OR I4 <1 OR I3 >6 OR I4 >6 THEN PRINT "NOW REALLY !": GOTO 300
420 FOR J = 1 TO 4
430 C(1,J) = M(I1,J)
440 C(2,J) = M(I2,J)
450 C(3,J) = Y(I3,J)
460 C(4,J) = Y(I4,J)
470 NEXT J
490 GOSUB 4170
510 GOSUB 1430
520 IF M = 0 THEN 560
530 PRINT NN$;" SCORES FIRST "
540 X1 = 1
550 GOTO 800
560 PRINT "APPLE SCORES FIRST "
570 X1 = 2
580 GOTO 1070
590 PRINT "THE CRIB CARDS ARE : "
610 PRINT : FOR I = 1 TO 4
620 PRINT C$(C(I,1))
630 NEXT I
640 FOR I = 1 TO 4
650 FOR J = 1 TO 4
660 W(I,J) = C(I,J)
670 NEXT J,I
690 C = 1:W(5,4) = T9
710 GOSUB 4380
720 IF X1 = 2 THEN 780
730 PRINT : PRINT P;"POINTS "
750 S1 = S1 +P
760 IF S1 > = 121 THEN 1320
770 GOTO 1280
780 X1 = 3: GOTO 920
800 K = 1
810 FOR I = 1 TO 6
820 IF I = I3 THEN 880
830 IF I = I4 THEN 880
840 FOR J = 1 TO 4
850 W(K,J) = Y(I,J)
860 NEXT J
870 K = K +1
880 NEXT I
890 W(5,4) = T9
900 C = 0: GOSUB 4380
920 INPUT "HOW MANY POINTS ? ";P9
940 D = P -P9
950 IF D > = 0 THEN 980
960 PRINT "NOT WITH THAT HAND !": GOTO 920
980 S2 = S2 +P9
990 IF S2 > = 121 THEN 1360
1000 IF D = 0 THEN 1060
1010 S1 = S1 +D
1020 PRINT : PRINT "MUGGINS FOR ";D;" POINTS": PRINT
1050 IF S1 > = 121 THEN 1320
1060 ON X1 GOTO 1070,590,1280
1065 PRINT "X1 BAD VALUE !": STOP
1070 FOR K = 1 TO 4
1080 L = V(B9,K)
1090 FOR J = 1 TO 4
1100 W(K,J) = M(L,J)
1110 NEXT J,K
1130 PRINT "MY CARDS ARE "
1140 PRINT
1150 FOR K = 1 TO 4
1160 L = W(K,1)
1170 PRINT C$(L)
1180 NEXT K
1190 W(5,4) = T9
1200 C = 0
1210 GOSUB 4380
1220 S1 = S1 +P
1230 IF S1 > = 121 THEN 1320
1240 PRINT : PRINT P;" POINTS ": PRINT
1270 ON X1 GOTO 590,800
1280 PRINT : PRINT "APPLE ";S1;" POINTS ";NN$;" ";S2;" POINTS "
1300 PRINT : GOTO 220
1310 END
1320 PRINT : PRINT "APPLE WINS ";S1;" TO ";S2: PRINT : END
1360 PRINT : PRINT NN$;" WINS ";S2;" TO ";S1: PRINT
1370 END
1430 Y5 = 0:M5 = 0:C = 0:S9 = 0:G = 0
1440 IF M = 0 THEN 1830
1450 IF Y5 < >4 THEN 1480
1460 IF M5 = 4 THEN 2460
1470 GOTO 1830
1480 PRINT NN$;: INPUT " PLAY ? ";C$
1500 IF C$ = "GO" THEN 1830
1510 FOR C6 = 1 TO 6
1520 IF C$ = D$(C6) THEN 1560
1530 NEXT C6
1540 PRINT "INVALID PLAY ": GOTO 1480
1560 IF C6 = I3 THEN 1770
1570 IF C6 = I4 THEN 1770
1580 IF Y5 = 0 THEN 1620
1590 FOR J = 1 TO Y5
1600 IF I(10 +J) = C6 THEN 1790
1610 NEXT J
1620 IF S9 +Y(C6,2) >31 THEN 1810
1630 S9 = S9 +Y(C6,2)
1640 Y5 = Y5 +1
1650 I(10 +Y5) = C6
1660 C = C +1
1670 J(C) = Y(C6,4)
1680 GOSUB 2940
1690 PRINT NN$;" PLAYED ";C$(Y(C6,1))
1700 PRINT S9;" SUM ";P;" POINTS "
1710 F = 1
1720 S2 = S2 +P
1730 IF S2 > = 121 THEN 1360
1740 IF S9 < >31 THEN 1830
1750 F = 0:C = 0:S9 = 0:G = 0
1760 GOTO 1830
1770 PRINT " YOU DISCARDED THAT ONE"
1780 GOTO 1480
1790 PRINT "ALREADY PLAYED "
1800 GOTO 1480
1810 PRINT "TOTALS MORE THEN 31 "
1820 GOTO 1480
1830 IF M5 < >4 THEN 2000
1840 IF Y5 = 4 THEN 2460
1850 IF C$ < >"GO" THEN 1450
1860 PRINT
1870 IF F = 2 THEN 1940
1880 PRINT "YOU GET 1 POINT LAST CARD": PRINT
1900 S2 = S2 +1
1910 IF S2 > = 121 THEN 1360
1920 F = 0:C = 0:S9 = 0
1930 GOTO 1450
1940 PRINT "I GET 1 PIONT LAST CARD": PRINT
1960 S1 = S1 +1
1970 IF S1 > = 121 THEN 1320
1980 F = 0:C = 0:S9 = 0
1990 GOTO 1450
2000 K9 = 0:P9 = 0:C9 = C:C = C +1:H9 = S9
2040 I9 = 0
2045 I9 = I9 +1
2050 I(I9) = 0
2060 IF I9 = I1 THEN 2200
2070 IF I9 = I2 THEN 2200
2080 IF M5 = 0 THEN 2120
2090 FOR J9 = 1 TO M5
2100 IF I9 = I(20 +J9) THEN 2200
2110 NEXT J9
2120 IF H9 +M(I9,2) >31 THEN 2200
2130 K9 = K9 +1
2140 S9 = H9 +M(I9,2)
2150 J(C) = M(I9,4)
2160 GOSUB 2940
2170 IF P9 <P THEN P9 = P
2180 I(I9) = P
2190 I(K9 +30) = I9
2200 IF I9 <6 THEN 2045
2210 C = C9:S9 = H9
2230 IF K9 < >0 THEN 2580
2240 IF C$ < >"GO" THEN 2330
2250 IF G = 1 THEN 2340
2270 PRINT : PRINT "I GET 1 POINT LAST CARD": PRINT
2290 C = 0:S9 = 0:S1 = S1 +1
2310 IF S1 > = 121 THEN 1320
2320 GOTO 1450
2330 IF Y5 < >4 THEN 2420
2340 PRINT : PRINT "I'LL GIVE YOU 1 POINT LAST CARD ": PRINT
2370 S2 = S2 +1
2380 IF S2 > = 121 THEN 1360
2390 C = 0:S9 = 0:G = 0
2400 C$ = ""
2410 GOTO 1830
2420 IF G = 1 THEN 1450
2430 PRINT "..GO.."
2440 G = 1
2450 GOTO 1450
2460 IF F = 0 THEN 2560
2470 PRINT
2480 IF F = 1 THEN 2530
2490 PRINT "I GET 1 POINT LAST CARD "
2500 S1 = S1 +1
2510 IF S1 > = 121 THEN 1320
2520 GOTO 2560
2530 PRINT "YOU GET 1 POINT LAST CARD "
2540 S2 = S2 +1
2550 IF S2 > = 121 THEN 1360
2560 PRINT
2570 RETURN
2580 C = C +1:M5 = M5 +1
2600 IF C < >1 THEN 2730
2605 IF M5 < >1 THEN 2730
2610 FOR J9 = 1 TO 4
2620 I9 = V(B9,J9)
2640 IF M(I9,2) = 5 THEN 2700
2650 I(M5 +20) = I9
2660 J(C) = M(I9,4)
2670 P9 = 0
2680 S9 = M(I9,2)
2690 GOTO 2800
2700 NEXT J9
2710 L = V(B9,1)
2720 GOTO 2650
2730 FOR J9 = 1 TO K9
2740 I9 = I(J9 +30)
2750 IF I(I9) = P9 THEN 2770
2760 NEXT J9
2770 I(M5 +20) = I9
2780 J(C) = M(I9,4)
2790 S9 = S9 +M(I9,2)
2800 PRINT "APPLE PLAYED ";C$(M(I9,1))
2810 PRINT S9;" SUM ";P9;" POINTS "
2820 F = 2:S1 = S1 +P9
2840 IF S1 > = 121 THEN 1320
2850 IF S9 < >31 THEN 2880
2860 F = 0:C = 0:S9 = 0
2870 GOTO 1450
2880 IF C$ = "GO" THEN 1830
2890 GOTO 1450
2940 P = 0
2950 IF C = 1 THEN 3170
2960 IF S9 < >15 THEN 2990
2970 P = P +2
2980 GOTO 3010
2990 IF S9 < >31 THEN 3010
3000 P = P +2
3010 QQ = 2: IF C -2 >QQ THEN QQ = C -2
3015 FOR I = C TO QQ STEP -1
3020 IF J(I) < >J(I -1) THEN 3110
3030 ON C -I +1 GOTO 3040,3060,3080
3040 P = P +2: GOTO 3090
3060 P = P +4: GOTO 3090
3080 P = P +6
3090 NEXT I
3110 IF C = 2 THEN 3170
3120 R9 = 0
3130 FOR I = 3 TO C
3140 GOSUB 3180
3150 NEXT I
3160 P = P +R9
3170 RETURN
3180 FOR J = 1 TO C
3190 J(J +10) = J(C -J +1)
3200 NEXT J
3210 FOR K = 1 TO I
3220 FOR L = K +1 TO I
3230 IF J(K +10) <J(L +10) THEN 3270
3240 X = J(K +10)
3250 J(K +10) = J(L +10)
3260 J(L +10) = X
3270 NEXT L,K
3290 FOR K = 1 TO I -1
3300 IF J(K +10) < >J(K +11) -1 THEN 3330
3310 NEXT K
3320 R9 = I
3330 RETURN
3370 P9 = 0
3380 FOR Z9 = 1 TO 15
3390 I1 = V(Z9,1)
3400 I2 = V(Z9,2)
3410 I3 = V(Z9,3)
3420 I4 = V(Z9,4)
3430 FOR J = 1 TO 4
3440 W(1,J) = M(I1,J)
3450 W(2,J) = M(I2,J)
3460 W(3,J) = M(I3,J)
3470 W(4,J) = M(I4,J)
3480 W(5,J) = 25
3490 NEXT J
3510 C = 0
3520 GOSUB 4380
3530 V(Z9,7) = P
3540 IF P9 <P THEN P9 = P
3550 NEXT Z9
3570 J = 0
3580 FOR I = 1 TO 15
3590 IF V(I,7) < >P9 THEN 3620
3600 J = J +1
3610 I(J) = I
3620 NEXT I
3630 IF J >1 THEN 3690
3650 B9 = I(1)
3660 RETURN
3690 C9 = 5:Z = 1
3710 GOTO 3930
3730 C9 = 8:Z = 2
3750 GOTO 3930
3770 C9 = 7:Z = 3
3790 GOTO 3930
3810 C9 = 11:Z = 4
3830 GOTO 3930
3850 C9 = 1:Z = 5
3870 GOTO 3930
3890 B9 = INT(J * RND(1)) +1
3900 B9 = I(B9)
3910 RETURN
3930 P9 = 0
3940 FOR I = 1 TO 15
3950 J(I) = 0
3960 NEXT I
3970 FOR I = 1 TO J
3980 FOR K = 1 TO 4
3990 L = V(I(I),K)
4000 IF M(L,4) < >C9 THEN 4020
4010 J(I) = J(I) +1
4020 NEXT K
4030 IF P9 <J(I) THEN P9 = J(I)
4040 NEXT I
4050 K = 0
4060 FOR I = 1 TO J
4070 IF J(I) < >P9 THEN 4100
4080 K = K +1
4090 B9 = I(I)
4100 NEXT I
4110 IF K < >1 THEN 4130
4120 RETURN
4130 ON Z GOTO 3730,3770,3810,3850,3890
4170 U = INT(38 * RND(1)) +14
4180 PRINT : PRINT "UP CARD IS ";C$(D(U,1)): PRINT
4210 FOR I = 1 TO 4
4220 W(5,I) = D(U,I)
4230 NEXT I
4240 T9 = W(5,4)
4250 IF W(5,4) < >11 THEN 4340
4260 IF M = 0 THEN 4310
4270 PRINT "2 POINTS FOR ME"
4280 S1 = S1 +2
4290 IF S1 > = 121 THEN 1320
4300 RETURN
4310 PRINT "2 POINTS FOR YOU ";NN$
4320 S2 = S2 +2
4330 IF S2 > = 121 THEN 1360
4340 RETURN
4380 P = 0
4400 IF C = 1 THEN 4480
4410 FOR I = 1 TO 4
4420 IF W(I,4) < >11 THEN 4460
4430 IF W(I,3) < >W(5,3) THEN 4460
4440 P = P +1
4450 GOTO 4480
4460 NEXT I
4480 FOR I = 1 TO 3
4490 IF W(I,3) < >W(I +1,3) GOTO 4600
4500 NEXT I
4520 IF C < >0 THEN 4570
4530 P = P +4
4540 IF W(4,3) < >W(5,3) THEN 4600
4550 P = P +1
4560 GOTO 4600
4570 IF W(4,3) < >W(5,3) THEN 4600
4580 P = P +5
4600 FOR I = 1 TO 4
4610 FOR J = I +1 TO 5
4620 IF W(I,2) +W(J,2) < >15 THEN 4640
4630 P = P +2
4640 NEXT J,I
4670 FOR I = 1 TO 3
4680 FOR J = I +1 TO 4
4690 FOR K = J +1 TO 5
4700 IF W(I,2) +W(J,2) +W(K,2) < >15 THEN 4720
4710 P = P +2
4720 NEXT K,J,I
4760 FOR I = 1 TO 2
4770 FOR J = I +1 TO 3
4780 FOR K = J +1 TO 4
4790 FOR L = K +1 TO 5
4800 IF W(I,2) +W(J,2) +W(K,2) +W(L,2) < >15 THEN 4820
4810 P = P +2
4820 NEXT L,K,J,I
4870 S = 0
4880 FOR I = 1 TO 5
4890 S = S +W(I,2)
4900 NEXT I
4910 IF S < >15 THEN 4940
4920 P = P +2
4940 FOR I = 1 TO 13
4950 J(I) = 0
4960 NEXT I
4970 FOR I = 1 TO 5
4980 J = W(I,4)
4990 J(J) = J(J) +1
5000 NEXT I
5010 FOR I = 1 TO 13
5020 ON J(I) +1 GOTO 5060,5060,5050,5040,5030
5030 P = P +6
5040 P = P +4
5050 P = P +2
5060 NEXT I
5080 FOR I = 1 TO 5
5090 FOR J = I TO 5
5100 IF W(I,4) < = W(J,4) THEN 5140
5110 K = W(I,4):W(I,4) = W(J,4):W(J,4) = K
5140 NEXT J,I
5170 D = W(1,4) -Q(1,1)
5180 FOR I = 1 TO 11
5190 FOR J = 1 TO 5
5200 Q(I,J) = Q(I,J) +D
5210 NEXT J,I
5230 FOR I = 1 TO 11
5240 FOR J = 1 TO 5
5250 IF W(J,4) < >Q(I,J) THEN 5300
5260 NEXT J
5280 P = P +Q(I,6)
5290 RETURN
5300 NEXT I
5320 FOR L = 1 TO 2
5330 D = W(L,4) -R(1,1)
5340 FOR I = 1 TO 4
5350 FOR J = 1 TO 4
5360 R(I,J) = R(I,J) +D
5370 NEXT J,I
5390 FOR I = 1 TO 4
5400 FOR K = 1 TO 4
5410 IF W(K +L -1,4) < >R(I,K) THEN 5460
5420 NEXT K
5440 P = P +R(I,5)
5450 RETURN
5460 NEXT I,L
5490 FOR L = 1 TO 3
5500 D = W(L,4) -S(1)
5510 FOR I = 1 TO 3
5520 S(I) = S(I) +D
5530 NEXT I
5540 FOR I = 1 TO 3
5550 IF W(L +I -1,4) < >S(I) THEN 5600
5560 NEXT I
5580 P = P +S(4)
5590 RETURN
5600 NEXT L
5610 RETURN
5650 FOR I = 1 TO 52
5660 I(I) = 0
5670 NEXT I
5680 FOR I = 1 TO 52
5690 J = INT(52 * RND(1) +1)
5700 IF I(J) < >0 THEN 5690
5710 D(I,1) = J
5720 D(I,3) = INT((J -1)/13) +1
5730 D(I,4) = J -13 * INT((J -1)/13)
5740 D(I,2) = D(I,4): IF D(I,2) >10 THEN D(I,2) = 10
5750 I(J) = 1
5760 NEXT I
5770 RETURN
5810 INPUT "PLEASE CUT FOR DEAL (#1 TO 52)";I
5820 IF I > = 1 OR I < = 52 THEN 5870
5830 PRINT " BE SERIOUS NOW ";NN$: GOTO 5810
5870 IF I < > INT(I) THEN 5830
5880 I1 = D(I,1)
5890 PRINT NN$;" YOU DREW THE ";C$(I1)
5900 J = INT(52 * RND(1) +1)
5910 IF J = I THEN 5900
5920 J1 = D(J,1)
5930 PRINT "APPLE DRAWS THE ";C$(J1)
5940 IF D(I,4) <D(J,4) THEN 6020
5950 IF D(J,4) <D(I,4) THEN 5990
5960 PRINT "CUT AGAIN !": GOTO 5810
5990 M = 0: RETURN
6020 M = 1: RETURN
6070 IF M = 0 THEN 6100
6080 PRINT : PRINT NN$;" IT IS YOUR DEAL ": PRINT
6090 GOTO 6110
6100 PRINT : PRINT " IT IS MY DEAL "
6110 M = 1 -M:Y = 1 -M: PRINT
6140 PRINT NN$;"'S CARDS ARE : ": PRINT
6160 FOR I = 1 TO 6
6170 K = 2 *I -Y:L = 2 *I -M
6190 FOR J = 1 TO 4
6210 M(I,J) = D(K,J)
6230 Y(I,J) = D(L,J)
6240 NEXT J
6250 PRINT I;" ";C$(Y(I,1))
6270 NEXT I
6280 RETURN
6290 DATA 1,2,3,4,5,6,0,1,2,3,5,4,6,0,1,2,3,6,4,5,0
6300 DATA 1,2,4,5,3,6,0,1,2,4,6,3,5,0,1,2,5,6,3,4,0
6310 DATA 1,3,4,5,2,6,0,1,3,4,6,2,5,0,1,3,5,6,2,4,0
6320 DATA 1,4,5,6,2,3,0,2,3,4,5,1,6,0,2,3,4,6,1,5,0
6330 DATA 2,3,5,6,1,4,0,2,4,5,6,1,3,0,3,4,5,6,1,2,0
6340 DATA 1,1,1,2,3,09,1,1,2,2,3,12,1,1,2,3,3,12
6350 DATA 1,1,2,3,4,08,1,2,2,2,3,09,1,2,2,3,3,12
6360 DATA 1,2,2,3,4,08,1,2,3,3,3,09,1,2,3,3,4,08
6370 DATA 1,2,3,4,4,08,1,2,3,4,5,05
6380 DATA 1,1,2,3,6,1,2,2,3,6,1,2,3,3,6,1,2,3,4,4
6390 DATA 1,2,3,3
6400 DATA "1","2","3","4","5","6"
6410 DATA " A"," 2"," 3"," 4"," 5"," 6"," 7"," 8"
6420 DATA " 9", "10"," J"," Q", " K"
6430 END